Soru & Cevap

Android 5 ve 6 sdcard erişim problemi.

26.12.2015 - 08:50

Android 5'in alt sürümlerinde sdcard üzerine

File dosya = new File("/sdcard");

if(dosya.canRead())
File[] dosyalar = dosya.listFiles(); 

diyerek erişebiliyoruz.

5'in alt sürümlerinde sdcard okunabilir. Fakat 5 ve 6 sürümlerinde sdcard okunamaz ve yazılamaz. Yani en azından rootlu olmayan telefonlar için erişim sağlayamıyoruz. Android 5 ve 6 emulatorun içerisin de bir dosya gezgini var. Bu gezgin sdcard a erişebiliyor. Ama ben erişemiyorum. Sdcard'a erişebilmem için ne yapmam lazım. Bazı kaynaklar buldum ama anlaşılır değil. Lütfen yardımcı olursanız sevinirim.

7 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-29018-1412171245.jpg
huseyinaydin99
28.12.2015 - 01:53

Cevabı buldum adamım. 5 ve üzerinde farklı dosya yetkilendirme protokolü uygulamışlar. O an kullandığın activity e yetki verilerek ancak ulaşılabiliyor. Kendim sorar kendim yanıtlarım a.

try {
boolean hasPermission = (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED);
if (!hasPermission) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_WRITE_STORAGE);
} else {
File dosya = new File("/sdcard/");
String[] isimler = dosya.list();
for (int i = 0; i < isimler.length; i++) {
Toast.makeText(getApplicationContext(),isimler[i].toString(),Toast.LENGTH_SHORT).show();
}
}
}
catch (Exception ex){
Log.i(ex.getMessage(),"hataaa");
}

Ali Karakoç
28.12.2015 - 04:38
Marshmallow 6.0 ve üzerleri için izinler artık requestPermission şeklinde manifest iptal. Bazı izinler için tabi..